perm filename CS144[2,DBL] blob
sn#023361 filedate 1973-02-05 generic text, type T, neo UTF8
00100 2/5/73 CS 144A
00200 PROBLEM 1 DEALT WITH MODIFYING INSTRUCS.
00300 PROBLEM 2 DEALS WITH DESIGNING A DATA STRUCTURE FOR MESSAGE
00400 TAKING AND HANDLING:
00500 CIRCULAR LIST, DOUBLY LINKED LIST STRUCTURE SUGGESTED
00600
00700 A QUEUE IS PROBABLY THE BEST, SINCE WE ONLY NEED DELETE
00800 THE OLDEST MESSAGES ...
00900 SO ALLOCATEE ALL MEEMORY AS A SEQUENTIAL QUEUE
01000 BUT IT MIGHT BE BETTER TO LINK THEM POINTING BACKWARDS...
01100
01200 ACTUALLY, THE DOUBLY-LINKED SIMULATED BY 1 LINK IS APPLICABLEE HERE...
01300
01400 EACH MESSAGE BELONGS TO A DATED QUEUE, AND ALSO TO 1 OR MORE
01500 USERS' QUEUES.
01600
01700 FOR EACH USER, WE KEEP A POINTER TO THE FIRST MESSAGE IN THE DATED Q,
01800 AND TO THE FIRST OF HIS MESSAGES
01900 AND TO THE LAST MESSAGGE
02000
02100 WHEN A MSG COMES IN..
02200 IF IT FITS..
02300 CHANGE THE POINTER TO REAR
02400 AND INSERT THE MESSAGE
02500
02600 KEEP 20 LOACAATIONS, ONE FOR EACH USER, SO THAT WHEN GUY 5 COMES IN, WE
02700 LOOK IN THE FIFTH LOC, GET THE ADDRESS OF THE FIRST MESSAGE FOR THIS
02800 GUY, GET IT, AND FOLLOW THE POINTER TO THE NEXT MESSAGE FOR THIS GUY...
02900 BUT WHAT IF A MESSAGE IS FOR SEVERAL GUYS.
03000 HOW DO WE KNOW WHICH IS THE OLDEST MESSAGE???
03100 POINTER FRONT SHOULD POINT TO THE OLDEST ABSOLUTE MESSSAGE...
03200 POINTER FROM USER IS ALSO DOUBLY DIRECTED